﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Biblioteca.Utils;
using Biblioteca.Objetos;
using SEG.Utils;
using Biblioteca.DataBase;
using System.Data.Common;
using SEG.Objetos;
using System.Collections.Generic;
using Pms.Utils;

namespace SEG
{
    public partial class UsuarioEmpresa : System.Web.UI.Page
    {
        Usuario usuAut;
        char permManut;
        string codUsu;



        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session.Count == 0)
                Response.Redirect("~/Login.aspx");
            else
            {
                usuAut = (Usuario)Session["usuario"];
                char perm = BiblioPMS.VerifiquePermissao("USUARIOEMPRESA.ASPX", BiblioPMS.aplicacaoSEG, usuAut.Login);
                if (perm.Equals('N'))
                    Response.Redirect("Inicio.aspx");

                //Verifica permissão de manutenção sobre a interface, caso nao tenha desabilita o botão "Novo" 
                permManut = BiblioPMS.VerifiquePermissao("USUARIOEMPRESAMANUT.ASPX", BiblioPMS.aplicacaoSEG, usuAut.Login);
                if (!permManut.Equals('M'))
                {
                    btn_Novo.Enabled = false;
                    btn_Novo.Visible = false;
                }                

                //Inicia pesquisando para carregar o Grid de Empresas

                if (!Page.IsPostBack)
                {
                    hplVoltar.NavigateUrl = "Usuarios.aspx";
                    Session["pagAtual"] = 1;
                }

                if (Request["codUsu"] != null)
                {
                    codUsu = Criptografia.Descriptografar(Request["codUsu"]);
                    lblUsuario.Text = Usu.ObterNomeUsuario(codUsu, usuAut.Login);
                }

                PesquisarEmpresas();               
                
            }       

        }

        private void PesquisarEmpresas()
        {

            string sql = @" select emp.cod_empresa, bibl_pkg.formatar_cnpj(emp.cnpj_empresa) as CNPJ_empresa ,emp.nom_empresa, usuemp.padrao
                          from sng_empresa emp, seg_usuario_empresa usuemp
                         where emp.cod_empresa = usuemp.cod_empresa
                         and usuemp.cod_usu = :cod_usu";
            QueryPaginada qry = new QueryPaginada(BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSEG, usuAut.Login), sql, BiblioSEG.tamPag);
            qry.AdicionarParametro("cod_usu", DbType.String, codUsu);

            try
            {
                GridUsuEmp.DataSource = qry.Executar((int)Session["pagAtual"]);
                GridUsuEmp.DataBind();
                CarregueBotoes(qry.QtdLinhas());
            }
            finally
            {
                qry.FecharConexao();
            }
        }

        private void CarregueBotoes(int qtdLinhas)
        {
            Biblio.CarregueTela(lblPagina, lblTotalPag, Session, BiblioSEG.tamPag, qtdLinhas);
            Biblio.ValideBotoes(btnPrimeiro, btnAnterior, btnProximo, btnUltimo, (int)Session["pagAtual"], int.Parse(lblTotalPag.Text));
        }

        protected void btnPrimeiro_Click(object sender, EventArgs e)
        {
            Session.Add("pagAtual", 1);
            PesquisarEmpresas();
        }

        protected void btnAnterior_Click(object sender, EventArgs e)
        {
            Session["pagAtual"] = (int)Session["pagAtual"] - 1;
            PesquisarEmpresas();
        }

        protected void btnProximo_Click(object sender, EventArgs e)
        {
            Session["pagAtual"] = (int)Session["pagAtual"] + 1;
            PesquisarEmpresas();
        }

        protected void btnUltimo_Click(object sender, EventArgs e)
        {
            Session["pagAtual"] = Session["totalPag"];
            PesquisarEmpresas();
        }

        protected void GridUsuEmp_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string cod_emp = ((DbDataRecord)e.Row.DataItem).GetDecimal(1).ToString();
                string padrao = ((DbDataRecord)e.Row.DataItem).GetString(4);

                if (permManut.Equals('M'))
                {
                    ((HyperLink)e.Row.Cells[3].Controls[1]).NavigateUrl = "UsuarioEmpresaManut.aspx?op=D&codUsu=" + Server.UrlEncode(Criptografia.Criptografar(codUsu));                                        
                    ((HyperLink)e.Row.Cells[5].Controls[1]).NavigateUrl = "UsuarioEmpresaGrupo.aspx?codUsu=" + Server.UrlEncode(Criptografia.Criptografar(codUsu)) + "&codemp=" + Server.UrlEncode(Criptografia.Criptografar(cod_emp));

                }
                else
                {
                    ((HyperLink)e.Row.Cells[3].Controls[1]).ImageUrl = "~/Imagens/botoes/Deletedisab.png";
                    ((HyperLink)e.Row.Cells[3].Controls[1]).Text = "Não autorizado";

                    //((HyperLink)e.Row.Cells[5].Controls[1]).ImageUrl = "../../Imagens/botoes/Deletedisab.png";
                    ((HyperLink)e.Row.Cells[5].Controls[1]).Text = "Não autorizado";

                }

                if (padrao.Equals("V"))
                    ((RadioButton)e.Row.Cells[4].Controls[1]).Checked = true;
                else
                {
                    ((RadioButton)e.Row.Cells[4].Controls[1]).Checked = false;
                    ((RadioButton)e.Row.Cells[4].Controls[1]).Enabled = false;
                }


            }    
        }

        protected void btnNovo_Click(object sender, EventArgs e)
        {
            Response.Redirect("UsuarioEmpresaManut.aspx?op=I&codUsu=" + Server.UrlEncode(Criptografia.Criptografar(codUsu)));
        }







    }
}
